#pragma once

#include "Globals.hpp"
#include "SuperData.h"
#include "UIElement.h"
#include "Button.h"
#include "GLPrimitives.h"
#include "GenericKeys.h"
#include <string>

class Button;

//const int NUMBER_OF_BUTTONS = 5;
const int MAX_BUTTONS = 16; // 2 rows of buttons MAX

class OverlayMenu : public UIElement
{
private:
	// isActive is used to determine whether or not to draw the overlay menu
	bool isActive;

	// The total number of buttons
	int Number_of_Buttons;

	// The overlay menu can have a total of five buttons
	//Button buttons[NUMBER_OF_BUTTONS];
	Button buttons[MAX_BUTTONS];


	

public:

	// Constructor & Destructor
	OverlayMenu();
	~OverlayMenu();

	void RecreateButtonLocations(int NumberOfButtons);	// maxium buttons: 16


	// Is the overlay menu actually active right now?
	bool GetActive() const {return isActive;}
	void SetActive(bool condition) {isActive = condition;}

	bool SetButtonMessage(string message, const int& buttonID); // Sets the message on a specified button
	bool GetButtonBounds(const int& buttonID); // Returns the bounds of a specified button (for "scripting")

	void DrawOpaq(); // Display the overlay menu
	void DrawTrans();
	void HandleGraphicalEvents(); // Handle Mouseovers
	void Update();
	void HandleEvents(SDL_Event& event);
	

};